package cc.rengu.igas.bomp.core.realize;

import cc.rengu.igas.bomp.common.entity.MchntBaseInfo;
import cc.rengu.igas.bomp.common.entity.MchntImageInfo;
import cc.rengu.igas.bomp.common.entity.WechatMchntInfo;
import cc.rengu.igas.bomp.facade.bean.MchntImageInfoBean;

import java.util.List;

/**
 * 商户影像管理统一服务
 *
 * @author bank
 * @version 1.0
 * @date 2019/08/15
 */
public interface MchntImageUnifiedService {

    /**
     * 影像管理通用方法
     * <p/>
     * 调用前需开启MCMP数据库事务,并且以try-catch包裹,同时建议提前判断mchntImageInfoBeanList是否为空,非空时传入
     * 例子:
     * {@link cc.rengu.igas.bomp.core.service.trans.MchntImageInfoManageService}
     *
     * @param mchntBaseInfo          商户基本信息
     * @param mchntImageInfoBeanList 上送影像List
     * @param imageTypes             [,]分割的预处理影像类型
     * @throws Exception 异常
     */
    void manageMchntImage(MchntBaseInfo mchntBaseInfo, List<MchntImageInfoBean> mchntImageInfoBeanList, String imageTypes) throws Exception;

    /**
     * 微信图片上传
     *
     * @param mchntBaseInfo   商户基本信息
     * @param wechatMchntInfo 微信商户信息
     * @param mchntImageInfo  商户影像信息
     * @throws Exception 异常
     */
    void uploadToWechat(MchntBaseInfo mchntBaseInfo, WechatMchntInfo wechatMchntInfo, MchntImageInfo mchntImageInfo) throws Exception;

    /**
     * 微信图片上传
     *
     * @param mchntBaseInfo   商户基本信息
     * @param wechatMchntInfo 微信商户信息
     * @param localPath       图片本地路径
     * @return mediaId
     * @throws Exception 异常
     */
    String uploadToWechat(MchntBaseInfo mchntBaseInfo, WechatMchntInfo wechatMchntInfo, String localPath) throws Exception;

    // /**
    //  * 影像平台下载商户图片处理
    //  *
    //  * @param instId  机构号
    //  * @param imageId 图片ID
    //  * @return 下载结果
    //  * @throws Exception 异常
    //  */
    // boolean imagePlatFormDownloadProcess(String instId, String imageId) throws Exception;
}
